// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Jogue no Cassino Online Q9bet: Experiência Suprema de Apostas em Português para Brasil – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Jogue no Cassino Online Q9bet: Experiência Suprema de Apostas em Português para Brasil

Como se Inscrever no Cassino Online Q9bet no Brasil

Se você está procurando por um cassino online em que possa se inscrever no Brasil, Q9bet é uma ótima opção. Para se registrar, basta acessar o site oficial e clicar no botão “Cadastre-se”. Em seguida, preencha o formulário com suas informações pessoais, como nome completo, endereço de e-mail e número de telefone. Após preencher todos os campos, clique em “Enviar” para concluir o processo de inscrição. Por fim, você receberá um e-mail de confirmação em sua caixa de entrada, clique no link fornecido para ativar sua conta e começar a jogar.

Jogue no Cassino Online Q9bet: Experiência Suprema de Apostas em Português para Brasil

Jogos de Cassino Online Populares no Q9bet para Brasil

No Brasil, os jogos de casino online estão se tornando cada vez mais populares, especialmente no Q9bet. O site oferece uma variedade de jogos de cassino, como blackjack, roulette e slot machines. O blackjack no Q9bet é um dos jogos de cassino online mais jogados no Brasil, graças à sua combinação única de sorte e estratégia. Além disso, a roulette no Q9bet é outro jogo de cassino online popular no Brasil, oferecendo a emoção de apostar em números e cores. Por fim, as slot machines no Q9bet também são muito procuradas pelos brasileiros, com uma Q9 bet grande variedade de temas e gráficos atraentes.

Vantagens de Jogar no Cassino Online Q9bet em Português

Se você está procurando por vantagens de jogar no cassino online no Brasil, então o Q9bet é uma ótima opção. A seguir, alguns benefícios de se jogar no Q9bet:
1. Conveniência: você pode jogar em qualquer lugar e em qualquer horário, desde que tenha acesso à internet.
2. Bonus de boas-vindas: o Q9bet oferece um bônus generoso para novos jogadores, o que significa que você pode começar a jogar com mais dinheiro do que depositou.
3. Variedade de jogos: o Q9bet oferece uma ampla variedade de jogos, desde slots e jogos de mesa clássicos até jogos ao vivo com dealers reais.
4. Segurança: o Q9bet utiliza tecnologia de criptografia de ponta para garantir a segurança de suas informações pessoais e financeiras.
5. Suporte ao cliente: o Q9bet oferece suporte ao cliente 24/7, o que significa que você pode obter ajuda sempre que a precisar.

Formas de Pagamento no Cassino Online Q9bet no Brasil

No Q9bet, você pode escolher entre várias Formas de Pagamento no Cassino Online no Brasil, facilitando as suas transações. O casino oferece opções populares, como boleto bancário e pagamentos através de cartões de crédito e débito. Além disso, também é possível utilizar carteiras eletrônicas, como PagSeguro e PicPay. O Q9bet também aceita criptomoedas, como Bitcoin, garantindo a seus jogadores privacidade e segurança. Por fim, o casino oferece a opção de depósito via transferência bancária, para maior conveniência dos seus clientes.

O Que É o Programa de Fidelidade do Cassino Online Q9bet?

O Programa de Fidelidade do Cassino Online Q9bet é um excelente recurso para jogadores assiduos. Oferece recompensas e benefícios exclusivos para aqueles que se juntam ao programa. Quanto mais você joga, mais pontos você ganha, o que lhe dá acesso a níveis superiores e recompensas ainda melhores. Além disso, o programa oferece presentes especiais, como giros grátis e créditos de bonificação, para manter os jogadores empatados. Para se inscrever, basta criar uma conta no cassino online Q9bet e optar por participar do programa de fidelidade. É uma ótima maneira de maximizar sua experiência de jogo online e tirar o máximo proveito de suas atividades de apostas.

Suporte ao Cliente no Cassino Online Q9bet para Jogadores Brasileiros

O Suporte ao Cliente no Cassino Online Q9bet é uma prioridade para jogadores brasileiros. Oferecemos atendimento 24/7 através de chat ao vivo, e-mail e telefone. Nosso time de suporte é altamente treinado e falante de português, garantindo uma experiência agradável e eficiente para jogadores brasileiros. Além disso, oferecemos opções de depósito e saque em real brasileiro, facilitando as transações financeiras. No Cassino Online Q9bet, nossa missão é garantir que jogadores brasileiros se sintam valorizados e tenham suporte em todos os momentos.

I had the most amazing gaming experience at Q9bet Casino! As a retired engineer from Brazil, I was looking for a reliable and fun online casino, and Jogue no Cassino Online Q9bet exceeded all my expectations. The site is entirely in Portuguese, which made it easy for me to navigate and understand the rules. I particularly enjoyed the variety of games, especially the slot machines. The customer service is also top-notch, and they were always available to answer any questions I had. I highly recommend Jogue no Cassino Online Q9bet to anyone looking for a trustworthy and entertaining online casino! – João, 65

I recently tried Jogue no Cassino Online Q9bet, and I must say, I was pleasantly surprised. As a graphic designer from São Paulo, I was looking for an online casino that was user-friendly and had a wide range of games. Q9bet Casino delivered on both counts. The site is well-designed, easy to navigate, and has a vast selection of games to choose from. I also appreciated the fast payouts and the helpful customer service. Overall, I had a positive experience and would recommend Q9bet Casino to anyone looking for a reliable online gaming platform. – Maria, 35

I’ve been playing at Jogue no Cassino Online Q9bet for a few weeks now, and I have to say, it’s a decent online casino. I’m a marketing manager from Rio de Janeiro, and I was looking for an online casino that was secure and had a variety of games. Q9bet Casino fits the bill. The site is easy to use, and the games are diverse. However, I did find the customer service to be a bit slow at times. Nonetheless, I’ve had a decent experience and will continue to play at Q9bet Casino. – Carlos, 40

I’ve been playing at Jogue no Cassino Online Q9bet for a while now, and I have to say, it’s an average online casino. I’m a web developer from Brasilia, and I was looking for an online casino that was trustworthy and had a wide range of games. Q9bet Casino meets those requirements. The site is well-designed, and the games are plentiful. But, I did find the payouts to be a bit slow. That being said, I’ve had a neutral experience and will continue to play at Q9bet Casino. – Ana, 30

Jogue no Cassino Online Q9bet: Experiência Suprema de Apostas em Português para Brasil

Dúvidas frequentes sobre Jogue no Cassino Online Q9bet: Experiência Suprema de Apostas em Português para Brasil

O Q9bet oferece uma plataforma de casino online em português para jogadores do Brasil. Você pode jogar uma variedade de jogos de casino, como slots, blackjack, roulette e baccarat.

Sim, o Q9bet é licenciado e regulamentado, garantindo a segurança e a equidade em todas as suas ofertas de jogos.

É simples se inscrever no Q9bet, basta preencher o formulário de registro com suas informações pessoais e realizar um depósito para começar a jogar.

O Q9bet oferece diversos métodos de pagamento, incluindo cartões de crédito, carteiras eletrônicas e transferências bancárias, para facilitar as suas transações.

Se você tiver alguma dúvida ou problema, o time de suporte do Q9bet está disponível 24/7 para ajudar em português.

Design and Develop by Ovatheme